import { ref, type Ref } from 'vue';
import { enumApi } from '../api/enum';

// 创建缓存 Map 来存储不同 code 的枚举数据
const enumCache = new Map<string, Ref<any[]>>();

export const getEnumList = (code: string) => {
  // 如果已经有缓存，直接返回缓存的数据
  if (enumCache.has(code)) {
    return enumCache.get(code)!;
  }

  // 创建新的响应式数据
  const enumList = ref<any[]>([]);

  // 异步获取数据
  const fetchEnumList = async () => {
    try {
      console.log('params', code);
      const { data } = await enumApi.getEnumList(code);
      console.log('data', data);
      enumList.value = data || [];
    } catch (error) {
      console.error('获取枚举数据失败:', error);
      enumList.value = [];
    }
  };

  // 立即执行数据获取
  fetchEnumList();

  // 缓存并返回响应式数据
  enumCache.set(code, enumList);
  return enumList;
};
